package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.user.UserPageSearchBo;
import com.codedancer.campus.manager.service.bo.user.UserUpdateBo;
import com.codedancer.campus.manager.service.vo.user.UserInfoVo;
import com.codedancer.campus.manager.service.vo.user.UserPageVo;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface IUserService {

    /**
     * 分页查询用户
     * @param userPageSearchBo
     * @return
     */
    IPage<UserPageVo> page(UserPageSearchBo userPageSearchBo);

    /**
     * 启用用户
     * @param uuid 用户uuid
     */
    void enable(String uuid);

    /**
     * 禁用用户
     * @param uuid 用户uuid
     */
    void disable(String uuid);

    /**
     * 删除用户
     * @param uuid 用户uuid
     */
    void delete(String uuid);

    /**
     * 导出用户
     * @param request
     * @param response
     */
    void export(HttpServletRequest request, HttpServletResponse response,UserPageSearchBo userPageSearchBo);

    /**
     * 批量启用
     * @param uuids
     */
    void batchEnable(List<String> uuids);

    /**
     * 批量禁用
     * @param uuids
     */
    void batchDisable(List<String> uuids);

    /**
     * 批量删除
     * @param uuids
     */
    void batchDelete(List<String> uuids);

    /**
     * 用户详情
     * @param uuid
     * @return
     */
    UserInfoVo detail(String uuid);

    /**
     * 修改用户
     * @param userUpdateBo
     */
    void updateUser(UserUpdateBo userUpdateBo);

    /**
     * 重置密码
     * @param uuid
     */
    void resetPassword(String uuid);
}
